home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / mtdialha.d < prev    next >
Text File  |  1997-10-26  |  6KB  |  117 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *  MAGICTOOLS   Modula's  All purpose  GEM  Interface  Cadre  Toolbox  *
  4.  *               ÿ         ÿ            ÿ    ÿ          ÿ               *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus, sowie die   *
  11.  * Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
  12.  * oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail-    *
  13.  * boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen    *
  14.  * Einverst„ndnisserkl„rung des Autors.                                 *
  15.  *                                                                      *
  16.  * Die Verbreitung des Moduls als Teil eines gelinkten Programms ist    *
  17.  * fr Lizenznehmer ausdrcklich erlaubt!  Der Autor beh„lt sich das    *
  18.  * Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
  19.  * widerrufen.                                                          *
  20.  *----------------------------------------------------------------------*)
  21.  
  22. (*----------------------------------------------------------------------* 
  23.  * mtDialHandler        "Halbautomatisches" Dialoghandling              *
  24.  *                                                                      *
  25.  * Fr jeden Returnwert, den DialDo liefert, wird eine Prozedur vom Typ *
  26.  * DialAction definiert (die Proz. erh„lt alle Informationen, um auch   *
  27.  * mehrere Returnwerte aus verschiedenen Dialogen handeln zu k”nnen).   *
  28.  *----------------------------------------------------------------------*)
  29.  
  30. DEFINITION MODULE mtDialHandler;
  31.  
  32. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  33.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  34.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  35.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  36.  
  37.  
  38.  
  39.  
  40.  
  41. FROM SYSTEM     IMPORT  ADDRESS;
  42.  
  43.  
  44. CONST   LeaveDial =      0;      (* Dialog abbrechen *)
  45.         DrawObjc =       1;      (* Objekt neuzeichnen *)
  46.         ResetSELECTED =  2;      (* SELECTED-Flag zurcksetzen *)
  47.         SetSELECTED =    3;      (* SELECTED-Flag setzen *)
  48.         ResetCHECKED =   4;      (* CHECKED-Flag zurcksetzen *)
  49.         SetCHECKED =     5;      (* CHECKED-Flag setzen *)       
  50.         
  51.  
  52. TYPE    ACTION; (* Die Daten sind nur Modulintern. Defacto ist ACTION eine
  53.                  * verkettete Liste auf Prozeduren des Typs DialAction.
  54.                  *)
  55.  
  56. TYPE    DialAction =    PROCEDURE ( (* dial   *)     ADDRESS,
  57.                                     (* entry  *)     sINTEGER,
  58.                                     (* double *)     BOOLEAN): BITSET;
  59.         (* Eine Prozedur dieses Typs handelt ein oder mehrere Objekte.
  60.          * Die Routine wird von der Prozedur DialHandler aufgerufen.
  61.          *
  62.          * dial =       Adresse des Objektbaums
  63.          * entry =      Objektnummer
  64.          * double =     TRUE bei Doppelklick auf das Objekt
  65.          *
  66.          * Prozedur returniert ein Bitset mit den Flags LeaveDial,
  67.          * wenn der Dialog abgebrochen werden soll;  DrawObjc, wenn das
  68.          * Objekt neugezeichnet werden soll; ResetSELECTED bzw. SetSELECTED,
  69.          * SELECTED-Flag setzen bzw. zurcksetzen;  ResetCHECKED bzw.
  70.          * SetCHECKED, CHECKED-Flag setzen bzw. zurcksetzen.
  71.          *)
  72.  
  73. PROCEDURE InitAction (VAR actions: ACTION);
  74. (* Initalisiert eine ACTION-Variable *)
  75.  
  76. PROCEDURE DisposeAction (VAR actions: ACTION);
  77. (* Deinitalisiert eine ACTION-Variable *)
  78.  
  79.  (*$H+ Lokale Prozeduren erlauben *)  
  80. PROCEDURE SetAction (VAR actions: ACTION; entry: sINTEGER; proc: DialAction): BOOLEAN;
  81. (* Tr„gt eine Action-Prozedur in actions ein. FALSE wenn Mižlungen *)
  82.  (*$H=*)  
  83.  
  84. PROCEDURE ResetAction (VAR actions: ACTION; entry: sINTEGER);
  85. (* L”scht eine Action-Prozedur aus action *)
  86.  
  87. CONST   DoProlog =      0;
  88.         DoEpilog =      1;
  89.         DoGraphics =    2;
  90.         
  91. PROCEDURE DialHandler (dial: ADDRESS; todo: BITSET; rect: ARRAY OF LOC;
  92.                        edobjc: sINTEGER; actions: ACTION);
  93. (* Arbeitet einen Dialog ab. Fr jeden Returnwert, den mtDials.DialDo 
  94.  * liefert muž eine Prozedur vom Typ DialAction deklariert und in 
  95.  * 'actions' eingetragen sein.  edobjc ist ein eventuelles Edit-Objekt.
  96.  * Der Dialog wird immer auf dem Bildschirm zentriert dargestellt.
  97.  *
  98.  * dial =    Adresse des Objektbaums.
  99.  *
  100.  * todo =    Bestimmt, was der Dialhandler alles zu tun hat:
  101.  *           DoProlog:   Bringt den Dialog auf den Bildschirm. Der Dialog muž
  102.  *                       bereits mit mtDials.NewDial initialisiert worden sein.
  103.  *           DoEpilog:   Entfernt den Dialog wieder vom Schirm.
  104.  *           DoGraphics: Erwartet in rect ein Rechteck, von dem aus eine 
  105.  *                       Growbox (bei DoProlog) bzw. Shrinkbox (bei DoEpilog)
  106.  *                       gezeichnet wird.
  107.  *
  108.  * rect =    Rechteck, wird bei todo-Flag DoGraphics ausgewertet
  109.  *
  110.  * edobjc =  Ein eventuelles Editobject, oder -1.
  111.  *
  112.  * actions = Liste der DialAction-Prozeduren
  113.  *)
  114.  
  115. END mtDialHandler.
  116.  
  117.